{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 回归方程的估计\n",
    "\n",
    "## 案例\n",
    "\n",
    "研究成人肝脏硬度指数 LSM 与 BMI 之间的关系。\n",
    "\n",
    "### 数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>\n",
       ".dataframe > thead > tr,\n",
       ".dataframe > tbody > tr {\n",
       "  text-align: right;\n",
       "  white-space: pre-wrap;\n",
       "}\n",
       "</style>\n",
       "<small>shape: (20, 3)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>subject ID</th><th>BMI</th><th>LSM</th></tr><tr><td>f64</td><td>f64</td><td>f64</td></tr></thead><tbody><tr><td>1.0</td><td>32.06</td><td>8.37</td></tr><tr><td>2.0</td><td>31.2</td><td>8.47</td></tr><tr><td>3.0</td><td>30.04</td><td>7.37</td></tr><tr><td>4.0</td><td>28.93</td><td>7.9</td></tr><tr><td>5.0</td><td>28.41</td><td>8.1</td></tr><tr><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td></tr><tr><td>16.0</td><td>21.72</td><td>4.31</td></tr><tr><td>17.0</td><td>21.11</td><td>5.0</td></tr><tr><td>18.0</td><td>20.72</td><td>3.9</td></tr><tr><td>19.0</td><td>20.03</td><td>5.13</td></tr><tr><td>20.0</td><td>19.68</td><td>6.0</td></tr></tbody></table></div>"
      ],
      "text/plain": [
       "shape: (20, 3)\n",
       "┌────────────┬───────┬──────┐\n",
       "│ subject ID ┆ BMI   ┆ LSM  │\n",
       "│ ---        ┆ ---   ┆ ---  │\n",
       "│ f64        ┆ f64   ┆ f64  │\n",
       "╞════════════╪═══════╪══════╡\n",
       "│ 1.0        ┆ 32.06 ┆ 8.37 │\n",
       "│ 2.0        ┆ 31.2  ┆ 8.47 │\n",
       "│ 3.0        ┆ 30.04 ┆ 7.37 │\n",
       "│ 4.0        ┆ 28.93 ┆ 7.9  │\n",
       "│ 5.0        ┆ 28.41 ┆ 8.1  │\n",
       "│ …          ┆ …     ┆ …    │\n",
       "│ 16.0       ┆ 21.72 ┆ 4.31 │\n",
       "│ 17.0       ┆ 21.11 ┆ 5.0  │\n",
       "│ 18.0       ┆ 20.72 ┆ 3.9  │\n",
       "│ 19.0       ┆ 20.03 ┆ 5.13 │\n",
       "│ 20.0       ┆ 19.68 ┆ 6.0  │\n",
       "└────────────┴───────┴──────┘"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import polars as pl\n",
    "\n",
    "lf = pl.read_csv(\"B_11_1-data.csv\").lazy()\n",
    "\n",
    "lf.collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 绘制散点图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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L33pS1q4cKGL1TsjnB51d3dr/fr1qq2t1fHjxzV27Fjde++9WrRokUaMiP8f3W+88YY2bNigpqYmnTp1SmPGjNEdd9yhZcuWadSoUQPjduzYoaeeekoHDhxQbm6uFi9erLlz57pYuXPsetTX16dNmzbpV7/6lZqammRZlgoLC7V8+XLddNNNjtUZ/9+t5/nnf/5njR8/Xg899JBGjx6turo6ffOb39TRo0e1bNkySdIvf/lLffOb39TSpUt1yy23qLa2VsuWLdMLL7ygKVOmuPsBDLPrT2trq1588UXNnTtXX/3qV3XmzBlt2rRJ9913nzZv3qyJEye6/RGMC+d7qF9PT48ef/xx5eTkuFStO8LpUVdXl+bPn6/k5GQ9/PDD8vl8amlp0alTp1yu3hnh9Oixxx7Ta6+9ppUrV2rixInatWuXnn76aXV3d2vFihUufwLz2tvbVVpaqvnz5ysrK0v79+/XM888o/3792vTpk2SpN/85jdatmyZvvCFL+jhhx/W//zP/+gb3/iGRo4cqTvvvNPlT2CeXY96enpUXV2te++9V5WVlUpKStJLL72kBQsW6Ic//KGmT5/uTKFWAvH7/YOurV692po6darV19dnWZZlfeYzn7FWrlwZNOa+++6zFi1a5EiNbrLrz+nTp62urq6g10+dOmXdfPPN1mOPPeZUma4K53uo31NPPWX9xV/8hfX1r3/duuuuu5wq0XXh9Oh73/ueNXPmTOv06dNOlxcT7HrU19dn3XDDDdbTTz8dNObv//7vrZkzZzpVZsx58cUXreuuu846evSoZVmWtXDhQuu+++4LGrNy5Upr1qxZbpQXE87v0blz56z29vag18+dO2fdeeed1pIlSxyrKaGe0cjOzh50bdKkSTp16pS6urp06NAhtbS0aNasWUFjPve5z+mtt97S2bNnnSrVFXb9SU9Pl9frDXp95MiRuvbaa/WHP/zBqTJdZdejfgcPHtTzzz+v1atXO1leTAinR//2b/+muXPnKj093enyYoJdjyzL0rlz54KmCCRp1KhRsizLqTJjTlZWliSpt7dXZ8+e1dtvvz3ozsXnPvc5vf/++zp8+LALFbrv/B4lJycrMzMz6PXk5GQVFhY6+jM7oYLGxfz2t7/VmDFjdOWVV6q5uVmSNGHChKAxEydOVG9vrw4dOuRGia46vz8X09nZqf379ys/P9/hymLHxXr0D//wD5o9e7auv/56FyuLHef36PDhw/rwww81evRoLV26VMXFxbr55pu1evVqnT592u1SXXN+j5KTk/X5z39eP/rRj1RfX6/Tp0+rrq5OW7du1V/+5V+6Xaqj+vr6dObMGe3du1fPPvusZsyYoauvvloHDx5Ub2/voJ89/VO4/T/PE8GlenQx586d0+7dux39mZ1Qz2hc6De/+Y1qa2v19a9/XZLU0dEhScrIyAga1//7/tcTxYX9uZjvfve78ng8uv/++x2sLHZcrEc7duzQ7373O23bts3FymLHhT06fvy4JOk73/mOPvOZz2jDhg1qaWnRk08+qa6uLq1bt87Ncl1xse+jNWvWaM2aNfriF784cG3JkiX667/+azdKdM3tt9+uY8eOSZJuu+02Pfnkk5L4eX2+S/XoYjZu3Khjx47pr/7qrxyqLoGDxtGjR7VixQqVlZVpwYIFbpcTc8Lpz+bNm/XSSy/p29/+tsaOHetwhe67WI/OnDmjxx9/XA8++OBFb48nmov1KBAISProzuF3vvMdSdL06dM1YsQIrV69WitWrNA111zjWs1Ou9SftSeeeEK/+tWvtHbtWuXl5WnXrl169tlnlZGRoUWLFrlYsbOqq6vV3d2tpqYmPffcc1q6dKmef/55t8uKKZfqUXJyctC4N998U88884y+/OUvq7i42LH6EjJodHZ2qrKyUllZWXrmmWeUlPTRDFL/XNbJkyd11VVXBY0///V4d6n+nO+NN97QI488oi9/+cu69957XajSXZfqUU1NjZKSknTXXXcNfN/09vYqEAios7NTaWlpSk1NdbN0x9j9OSsrKwsaf8stt0iS9u/fnzBB41I9eu+997Rp0yY999xzmjFjhiRp2rRpOnfunL7//e9r3rx5l5zOjDf904833nijSkpKNHv2bP3nf/6nCgoKJH308/p8ifbzWrp0j85/fmXv3r168MEHdffddw9aIWdawgWNnp4eLVmyRCdPntSLL74Y9LBV/5xVc3Nz0PxVc3OzUlJSEuKHX6j+9Nu1a5eWL1+uOXPmaPny5S5U6a5QPWpubtYHH3xw0WVj06ZN07e+9a2EmGYK1aNrrrkmZNg6c+aMEyW6LlSPmpqaJH30gOj5ioqKdPbsWR07dixhgsb5CgsLlZKSooMHD2rGjBlKSUlRc3OzbrvttoEx/c9mJOpzY+f3qN8HH3ygyspK3XjjjVq7dq3jNSVU0Dh37py++tWvqrm5WS+88ILGjBkT9Po111yjvLw8bdu2TXfcccfA9draWk2fPj3u/yVq1x/pox+AS5Ys0S233KJHH33UhSrdZdejysrKQXd4qqurdeDAAVVVVSkvL8/Bat1h16PU1FR94hOf0FtvvRV0va6uTpI0efJkx2p1i12Pxo8fL+mjf4WOGzdu4PqePXvk8XiUm5vraL2xYvfu3ert7dXVV1+t1NRUlZWV6T/+4z9UUVExMKa2tlYTJ0685MOQ8e78HknSH/7wBy1cuFDjxo3T008/rZSUFMdrSqig8eijj+q//uu/9NBDD+nUqVPatWvXwGtFRUVKTU3Vgw8+qL/7u7/Ttddeq7KyMtXW1qq+vl4/+tGP3CvcIXb9OXnypB544AFdccUVqqio0J49ewZev/LKKwduZcYzux5NnDhx0MZlL7/8so4dOzZoqiBehfPnbNmyZZo3b56+9rWv6d5779UHH3ygJ598Uvfcc4+uvfZa94p3iF2PiouLVVxcrDVr1sjv9+vaa69VfX29qqurNXfu3EHLzOPRsmXLVFxcrMLCQqWlpendd9/VD3/4QxUWFg78Q/Bv/uZvtGDBAn3rW9/SrFmz9Pbbb+uVV17R9773PZerd4Zdj3p6elRZWakTJ07oG9/4hvbv3z/wtampqSoqKnKkTo+VQIuyZ8yYoSNHjlz0te3btw8kwJ/97GfasGHDwBbkK1euTIgtyO36c+TIkUs+GHrzzTfrX//1X02WFxPC/R4630MPPaQ9e/YkzBbk4fborbfe0hNPPKH33ntPmZmZuueee7RixYq4v3MohdejDz/8UN///vdVV1cnv9+vsWPH6u6771ZlZaXS0tIcrth51dXVqq2t1cGDB2VZlsaPH68/+7M/0wMPPBA0bbR9+/ZBW5B/4QtfcLFy59j16PDhw5o5c+ZFv3b8+PHasWOHI3UmVNAAAADOSvgNuwAAgDkEDQAAYAxBAwAAGEPQAAAAxhA0AACAMQQNAABgDEEDAAAYQ9AAAADGEDQAAIAxBA0AAGAMQQMAABjz/wDJA4X9pAFTrAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "sns.set_theme(style=\"whitegrid\")\n",
    "\n",
    "plt.figure(dpi=100)\n",
    "\n",
    "plt.scatter(lf.select(\"BMI\").collect(), lf.select(\"LSM\").collect())\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以直观地看到，LSM 与 BMI 具有线性相关性。\n",
    "\n",
    "### 计算回归直线方程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinregressResult(slope=np.float64(0.29221080647578873), intercept=np.float64(-1.015896678264827), rvalue=np.float64(0.7981165699338004), pvalue=np.float64(2.4763242875134423e-05), stderr=np.float64(0.051993966730347375), intercept_stderr=np.float64(1.311836770580707))"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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fQBcddVVzJw5E9DP67863YxOZfHixezbt4/77rvPRek8uGjs3buXcePG0b17dwYPHmx2HLdTlfmsWLGCN954g2nTptGsWTMXJzTfqWZUUlLC1KlTGT169ClPj3uaU83IbrcDx84cTp8+HYDLL7+cevXqERsby7hx42jVqpVpmV3tdP+tPfXUU3z66ackJyfTpk0bNm3axLPPPktgYCBDhw41MbFrLVy4kKKiIjIzM5k/fz4jR47kxRdfNDuWWzndjLy9vSsc98UXXzB37lwefvhhIiMjXZbPI4tGQUEBw4YNIzg4mLlz5+LldewK0vFrWYcPH6ZJkyYVjv/rx+u6083nrz777DPi4+N5+OGH6devnwkpzXW6GS1btgwvLy9uvvnmE983ZWVl2O12CgoK8PPzw9fX18zoLuPov7Pu3btXOP6yyy4DYPv27R5TNE43o19//ZUlS5Ywf/58evXqBUC3bt0oLy/nmWeeYeDAgae9nFnXHL/82LVrV6Kiorj99ttZt24dHTp0AI79vP4rT/t5Daef0V/vX9m6dSujR4/mlltuOekJOWfzuKJRXFzMiBEjOHz4MK+//nqFm62OX7PKysqqcP0qKysLHx8fj/jhV9l8jtu0aRNjxoyhb9++jBkzxoSU5qpsRllZWfz++++nfGysW7duWK1Wj7jMVNmMWrVqVWnZKikpcUVE01U2o8zMTODYDaJ/FRERQWlpKfv27fOYovFXHTt2xMfHh507d9KrVy98fHzIysriqquuOnHM8XszPPW+sb/O6Ljff/+dYcOG0bVrV5KTk12eyaOKRnl5OWPHjiUrK4vly5fTtGnTCh9v1aoVbdq04cMPP+S666478fqaNWu4/PLL6/y/RB3NB479ABwxYgSXXXYZU6ZMMSGluRzNaNiwYSed4Vm4cCE7duwgNTWVNm3auDCtORzNyNfXlyuuuIIvv/yywutpaWkAdO7c2WVZzeJoRi1atACO/Su0efPmJ17fsmULFouF8PBwl+Z1Fz/99BNlZWW0bNkSX19funfvztq1axkyZMiJY9asWUP79u1PezNkXffXGQHs37+fBx54gObNmzNnzhx8fHxcnsmjisaUKVP45JNPmDhxIkeOHGHTpk0nPhYREYGvry+jR4/mscce49xzz6V79+6sWbOG9PR0Xn75ZfOCu4ij+Rw+fJgHH3yQ+vXrM2TIELZs2XLi4w0bNjxxKrMuczSj9u3bn7Rw2TvvvMO+fftOulRQV1Xlv7NRo0YxcOBAJkyYQL9+/fj999+ZOXMmt956K+eee6554V3E0YwiIyOJjIwkISGB3Nxczj33XNLT01m4cCH9+/c/6THzumjUqFFERkbSsWNH/Pz8+Pnnn3nhhRfo2LHjiX8IPvTQQwwePBir1cpNN93E119/zerVq3n66adNTu8ajmZUXFzMsGHDOHjwIDExMWzfvv3E5/r6+hIREeGSnBbDgx7K7tWrF7t37z7lx9avX3+iAb755pssWrToxBLk48eP94glyB3NZ/fu3ae9MfTSSy/lpZdecmY8t1DV76G/mjhxIlu2bPGYJcirOqMvv/ySp556il9//ZWgoCBuvfVWxo0bV+fPHELVZnTgwAGeeeYZ0tLSyM3NpVmzZtxyyy0MGzYMPz8/Fyd2vYULF7JmzRp27tyJYRi0aNGC66+/ngcffLDCZaP169eftAT5P//5TxOTu46jGf3xxx/07t37lJ/bokULNmzY4JKcHlU0RERExLU8fsEuERERcR4VDREREXEaFQ0RERFxGhUNERERcRoVDREREXEaFQ0RERFxGhUNERERcRoVDREREXEaFQ0RERFxGhUNERERcRoVDREREXGa/wPJJvdnTiXDuAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import linregress\n",
    "\n",
    "res = linregress(lf.select(\"BMI\").collect().to_series(), lf.select(\"LSM\").collect().to_series())\n",
    "\n",
    "line = lambda x: res.intercept + res.slope * x\n",
    "\n",
    "plt.scatter(lf.select(\"BMI\").collect().to_series(), lf.select(\"LSM\").collect().to_series())\n",
    "plt.axline((lf.select(\"BMI\").collect().to_series().min(), line(lf.select(\"BMI\").collect().to_series().min())), slope=res.slope, c=\"k\")\n",
    "\n",
    "res"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$ P < 0.05 $，拒绝 $ H_0 $，认为 LSM 与 BMI 有线性关系。  \n",
    "\n",
    "回归直线为 $ y = -1.016 + 0.292 x $"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
